
import service from '@/utils/bosssoft-request'

/**
 * Fetch data with query parameters
 * @param {Object} params - The query parameters to be sent with the request
 * @returns {Promise} - The Axios promise for the request
 */

// 查询角色列表
export function searchRoleListWithPageAndNameAndCompanyAPI(params) {
  return service({
    url: '/api/v1/permission/role', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// 新增角色
export function addRoleAPI(data) {
  return service({
    url: '/api/v1/permission/role', // The endpoint for your   POST request
    method: 'post',
    data // 将数据放在请求体中
  })
}

// 更新角色信息
export function updateRoleAPI(data) {
  return service({
    url: '/api/v1/permission/role', // The endpoint for your PUT request
    method: 'put',
    data // 将数据放在请求体中
  })
}

// 批量或单个删除角色
export function singleOrBatchDeleteRoleAPI(data) {
  return service({
    url: '/api/v1/permission/role', // The endpoint for your DELETE request
    method: 'delete',
    data // This will be serialized as URL query parameters
  })
}

// 验证角色码是否可用
export function confirmRoleCodeAPI(params) {
  return service({
    url: '/api/v1/permission/role/check/code', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// --------------------------角色资源API方法

// 查看单个或多个角色资源，当方法参数中角色id的数量是1时返回的数据中“existsFlag”为当前角色是否拥有该资源，0为拥有，1为没有；
// id数量为多个时，existsFlag全部为0
export function checkSingleOrMultipleRoleResourceAPI(params) {
  return service({
    url: '/api/v1/permission/role/resource', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// 查看当前角色是否有资源，返回值是一个字符串"请对角色分配资源后，再进行本次分配用户操作"和"当前角色拥有资源，可以进行分配用户操作"

export function checkRoleIfWithResource(params) {
  return service({
    url: '/api/v1/permission/role/resource/check', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// --------------------------角色资源公司API方法

// 对多个角色同时分配资源和公司
export function allocateRoleResourceAndCompanyAPI(data) {
  return service({
    url: '/api/v1/permission/role/resourceandcompany', // The endpoint for your GET request
    method: 'post',
    data // This will be serialized as URL query parameters
  })
}

// --------------------------角色公司API方法

// 查看单个或多个角色的公司关系，当方法参数中角色id的数量是1时返回的数据中“bindStatus”为当前角色是否属于该公司，0为否，1为是；
// id数量为多个时，bindStatus全部为0
export function checkSingleOrMultipleRoleCompanyAPI(params) {
  return service({
    url: '/api/v1/permission/role/company', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// --------------------------角色用户API方法
// 查看单个角色的用户列表
export function checkSingleRoleUserAPI(params) {
  return service({
    url: '/api/v1/permission/role/user', // The endpoint for your GET request
    method: 'get',
    params // This will be serialized as URL query parameters
  })
}

// 对单个角色进行某一页的用户分配
export function allocateSingleRoleSinglePageUserAPI(data) {
  return service({
    url: '/api/v1/permission/role/user', // The endpoint for your GET request
    method: 'post',
    data // This will be serialized as URL query parameters
  })
}

